import React, { Component } from 'react'

export default class ErrorBoundary extends Component {
  constructor() {
    super();
    this.state = {
      // 初始化没有错误
      hasError: false,
      error: null
    }
  }
  // 当错误发生而且被捕获时执行
  componentDidCatch(error) {
    this.setState({
      hasError: true,
      error: error
    })
  }
  render() {
    const {hasError, error} = this.state;
    return (
      <>
          {/* this.props.children是这个组件的子组件 */}
        {
          hasError?<mark>代码报错了...</mark>:this.props.children
        }
      </>
    )
  }
}
